home *** CD-ROM | disk | FTP | other *** search
- # CVS $Id: focus4.tcl,v 1.3 1995/02/03 16:54:41 zibi Exp $
- #!/bin/wstcl
-
- # SCCS ID: @(#)nwauthenticate.tcl 1.2 16:26:11 - 1.2
- #
- # Script to authenticate to a Netware Server.
- #
- # usage: nw_authenticate.tcl netware_server_name unix_userid
-
- proc LoginCB {cbs} {
- global loginid server loginwidget passwordt
-
- set loginid [VtGetValues $loginwidget -value ]
- if { [string length $loginid] == 0 } then {
- set msg [VtMessageDialog loginError \
- -message "You must specify a valid Login ID for Netware Server $server" \
- -ok ]
- VtShowDialog $msg
- VtSetFocus $loginwidget
- return
- }
- VtSetFocus $passwordt
- }
-
- proc PasswordCB {cbs} {
- global loginid password passwordt
- set password [VtGetValues $passwordt -value]
-
- if { [string length $password] == 0 } then {
- if { [string length $loginid] != 0 } then {
- set msg [VtMessageDialog loginError \
- -message "You must specify a valid Password for Login ID '$loginid'" \
- -ok]
- VtShowDialog $msg
- VtSetFocus $passwordt
- return
- }
- }
- }
-
- proc CancelCB {cbs} {
- VtClose
- exit
- }
-
-
- proc AuthOKCB { cbs } {
- VtClose
- exit
- }
-
- proc ApplyCB {cbs} {
- global server loginid password loginwidget passwordt
-
- set authenticator "nwlogin"
- #set authenticator "echo"
-
-
- set loginid [VtGetValues $loginwidget -value ]
- if { [string length $loginid] == 0 } then {
- set msg [VtMessageDialog loginError \
- -message "You must specify a valid Login ID for Netware Server $server" \
- -ok]
- VtShowDialog $msg
- VtSetFocus $loginwidget
- return
- }
-
- if { [string length $password] == 0 } then {
- set msg [VtMessageDialog loginError \
- -message "You must specify the Password for $loginid on Netware Server $server" \
- -ok]
- VtShow $msg
- VtSetFocus $passwordt
- return
- }
-
- if { [ catch {exec /bin/sh -c \
- "echo $password | $authenticator $server/$loginid >/dev/null \
- 2>/tmp/nwauth.1" } error ] } \
- {
- set msg [VtMessageDialog execError \
- -message "Unable to authenticate\n $error" \
- -ok]
- VtShow $msg
- return
- }
-
- if { [file exists /tmp/nwauth.1 ] && [file size /tmp/nwauth.1] } then {
- set msg [exec /bin/sh -c "cat /tmp/nwauth.1"]
- set errb [VtErrorBox nwloginError -message "$msg" -ok]
- VtShowDialog $errb
- return
- }
-
- set msg [ VtMessageDialog okauth \
- -message "$server/$loginid Authenticated" \
- -ok -okCallback AuthOKCB ]
- VtShowDialog $msg
- }
-
- # usage: nw_authenticate server_name user_id
- global server userid loginid password
-
- set server "NetDefault"
- set userid "anon"
- if { $argc > 0 } \
- {
- set server "[lindex $argv 0]"
- }
-
- if { $argc > 1 } \
- {
- set userid "[lindex $argv 1]"
- }
-
- set loginid $userid
- set password {}
-
- set app [VtOpen "Netware Server Authentication"]
- set form1 [VtFormDialog $app.form1 -cancelCallback CancelCB \
- -title "NetWare Authent" \
- -applyCallback ApplyCB]
-
- set srvrl [VtLabel $form1.srvr \
- -label "Authenticating user $userid to Netware Server $server"]
- set logint [VtText $form1.loginwidget \
- -rows 1 \
- -columns 20 \
- -callback LoginCB \
- -topSide $srvrl \
- -leftSide NONE \
- -alignRight $srvrl]
- set loginwidget $logint
-
- set logintl [VtLabel $form1.logintl \
- -label "$server Login:" \
- -topSide $srvrl \
- -rightSide $logint]
- set passwordt [VtText $form1.passwordwidget \
- -rows 1 \
- -columns 20 \
- -noEcho \
- -callback PasswordCB \
- -topSide $logint \
- -leftSide NONE \
- -alignRight $logint]
- set passwordtl [VtLabel $form1.passwordtl \
- -label "Password:" \
- -topSide $logintl \
- -rightSide $passwordt]
- VtSetValues $logint -value $userid
- VtSetFocus $logint
-
- VtShow $form1
- VtMainLoop
-